package com.zp.business.service.lab;

import com.zp.business.entity.lab.bo.LabApplyBo;
import com.zp.business.entity.lab.bo.SaveParamBo;
import com.zp.business.entity.lab.vo.LabApplyVo;
import com.zp.common.myBatis.core.page.PageQuery;
import com.zp.common.myBatis.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 检验申请主Service接口
 *
 * @author zhang peng
 * @ date 2024-03-05
 */
public interface ILabApplyService {

    /**
     * 查询检验申请主
     */
    LabApplyVo queryById (String id);

    /**
     * 查询检验申请主列表(分页)
     */
    TableDataInfo<LabApplyVo> queryPageList (LabApplyBo bo, PageQuery pageQuery);

    /**
     * 查询检验申请主列表(不分页)
     */
    List<LabApplyVo> queryList (LabApplyBo bo);

    /**
     * 修改检验申请主
     */
    Boolean insertByBo (LabApplyBo bo);

    /**
     * 修改检验申请主
     */
    Boolean updateByBo (LabApplyBo bo);

    /**
     * 校验并批量删除检验申请主信息
     */
    int deleteWithValidByIds (Collection<String> ids, Boolean isValid);

    /**
     * 保存检验申请明显
     *
     * @param bo
     * @return
     */
    boolean saveLabApplyAndItem (SaveParamBo bo);

    /**
     * 修改收费状态 ：3->申请退费 ;2->撤销退费
     *
     * @param id exam_apply 主键
     * @return
     */
    Boolean refundApplication (String id, String chargeFlag);

    /**
     * 检验确认（取消确认），修改状态
     *
     * @param bo
     * @return
     */
    boolean labConfirmOk(LabApplyBo bo);
}
